import { validURL, validEmail, validateCellphone, validateBusinessLicenseImgNum, isNumber } from '@/utils/validate'

/**
 * 验证邮箱
 * @param rule
 * @param value
 * @param callback
 */
export function isEmail(rule, value, callback) {
  if (validEmail(value)) {
    callback()
  } else {
    callback(new Error('请输入正确的邮箱地址'))
  }
}

/**
 * 验证手机号码
 * @param rule
 * @param value
 * @param callback
 */
export function isCellphone(rule, value, callback) {
  if (validateCellphone(value)) {
    callback()
  } else {
    callback(new Error('请输入正确的手机号码'))
  }
}

/**
 * 验证网址
 * @param rule
 * @param value
 * @param callback
 */
export function isURL(rule, value, callback) {
  if (validURL(value)) {
    callback()
  } else {
    callback(new Error('请输入正确的网址'))
  }
}

/**
 * 验证统一社会信用代码
 * @param rule
 * @param value
 * @param callback
 */
export function isBusinessLicenseImgNum(rule, value, callback) {
  if (validateBusinessLicenseImgNum(value)) {
    callback()
  } else {
    callback(new Error('请输入正确的统一社会信用代码'))
  }
}

/**
 * 验证公司简称码
 * @param rule
 * @param value
 * @param callback
 */
export function isPartyGroupPrefix(rule, value, callback) {
  const reg = /^[A-Z]{2,6}$/
  if (reg.test(value)) {
    callback()
  } else {
    callback(new Error('请输入2-6位大写字母'))
  }
}

/**
 * 大写字母校验
 * @param rule
 * @param value
 * @param callback
 */
export function isABC(rule, value, callback) {
  const reg = /^[A-Z]+$/
  if (reg.test(value)) {
    callback()
  } else {
    callback(new Error('请输入大写字母'))
  }
}
export function is2ABC(rule, value, callback) {
  const reg = /^[A-Z]{2}$/
  if (reg.test(value)) {
    callback()
  } else {
    callback(new Error('请输入2位大写字母'))
  }
}
export function is4ABCorNum(rule, value, callback) {
  const reg = /^[A-Z0-9]{2,4}$/
  if (reg.test(value)) {
    callback()
  } else {
    callback(new Error('请输入2~4位大写字母或数字'))
  }
}
//判断金额
export function mayDecimal(rule, value, callback) {
  if(value>1000000000){
    callback(new Error('输入金额过大'))
  }else if (isNumber(value)) {
    callback()
  } else {
    callback(new Error('请输入数字'))
  }
}
//判断正整数和0
export function isPositiveInteger(rule, value, callback) {
  const reg = /^[0-9]\d*$/;
  if (reg.test(value) || value==='') {
    callback()
  } else {
    callback(new Error('请输入正整数'))
  }
}
//
// 限定长度为10位数或者18位
export function istenOrEighteen(rule, value, callback) {
  if(!value)return callback();
  if (value.length==10||value.length==18) {
    callback()
  } else {
    callback(new Error('请输入10位或者18位社会统一代码'))
  }
}

//验证数字输入框最大数值,32767
export function checkMaxVal(rule, value,callback) {
  if (value < 0 || value > 99999999.99) {
    callback(new Error('请输入[0,99999999.99]之间的数字'));
  } else {
    callback();
  }
}
//判断正整数和0
export function ishundredInteger(rule, value, callback) {
  let  reg = /^(?:[1-9]?\d|100)$/;　
  if (reg.test(value) || value==='') {
    callback()
  } else {
    callback(new Error('请输入0-100正整数'))
  }
}
//判断0-100之间的数字
export function isBetweenHundred(rule, value, callback) {
  let  reg = /^(100)$|^((\d|[1-9]\d)(\.\d{1,2})?)$/;　
  if (reg.test(value) || value==='') {
    callback()
  } else {
    callback(new Error('请输入0-100的数字(保留两位小数)'))
  }
}

//判断金额格式，小数点后只能输入2位小数，0只有金额小于1时才能作为首字母
export function isFixed2(rule, value, callback) {
  let  reg = /^([1-9]\d*|0)(\.\d{1,2})?$/;
  if (reg.test(value) || value==='') {
    callback()
  } else {
    callback(new Error('请输入正确的格式(保留两位小数)'))
  }
}
